//
//  NSDate+Extension.swift
//  sinaweibo
//
//  Created by WGP on 16/4/17.
//  Copyright © 2016年 WGP. All rights reserved.
//

import Foundation

extension NSDate
{
    class func date(sinaString: String)->NSDate {
        
        let df = NSDateFormatter()
        
//        指定字符串的格式
        df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
//        真机需要指定
        df.locale = NSLocale(localeIdentifier: "EN")
        
//        将字符串转成NSDate,NSDate打印的时候是以0时区来打印
        let date = df.dateFromString(sinaString) ?? NSDate()
        
        return date
    }
    
//    和当前的时间比较,根据时间的需求返回不同的字符串
//    格式如下:
//    --刚刚(一分钟内)
//    --x分钟前(一小时内)
//    --x小时前(当天)
//    --HH:mm(昨天)
//    MM-dd HH:mm(一年内)
//    --yyyy-MM-dd HH:mm(更早期)
    
    func sinaDateDescription() -> String
    {
//        时间比较,NSCalendar专门处理时间的
        let calendar = NSCalendar.currentCalendar()
        
        if calendar.isDateInToday(self)
        {
            let interval = Int(NSDate().timeIntervalSinceDate(self))
            
            if interval < 60
            {
                return "刚刚"
            }
            
            if interval < 3600
            {
                return "\(interval/60)分钟前"
            }
            
            return "\(interval/3600)小时前"
        }
        
//        后面3中需要时间格式化
        var dfStr = ""
        
        if calendar.isDateInYesterday(self)
        {
            dfStr = "昨天 HH:mm"
        }else if calendar.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year) == .OrderedSame
        {
//            一年内
            dfStr = "MM-dd HH:mm"
        }else
        {
            dfStr = "yyyy-MM-dd HH:mm"
        }
        
        let df = NSDateFormatter()
        df.dateFormat = dfStr
        df.locale = NSLocale(localeIdentifier: "EN")
        
        let dateString = df.stringFromDate(self)
        return dateString
    }
    
}









